

// import storage from "react-native-storage";

class StorageDatas {

    loadLocalStorage = (key) => {
        return storage.load({
            key: key,
            // autoSync(默认为true)意味着在没有找到数据或数据过期时自动调用相应的sync方法
            autoSync: true,
            // syncInBackground(默认为true)意味着如果数据过期，
            // 在调用sync方法的同时先返回已经过期的数据。
            // 设置为false的话，则等待sync方法提供的最新数据(当然会需要更多时间)。
            syncInBackground: true,
            // 你还可以给sync方法传递额外的参数
            syncParams: {
                extraFetchOptions: {
                    // 各种参数
                },
                someFlag: true,
            },
            defaultExpires: 1000*3600*24,
        })
    }


    //保存 Storage 本地数据
    saveLocalStorage = (key, data) => {
        //使用key来保存数据。这些数据一般是全局独有的，常常需要调用的。
        //除非你手动移除，这些数据会被永久保存，而且默认不会过期。
        return global.storage.save({
            key: key,  // 注意:请不要在key中使用_下划线符号!
            data: data,
            // 如果不指定过期时间，则会使用defaultExpires参数
            // 如果设为null，则永不过期
            // expires: 1000 * 3600
            defaultExpires: 1000*3600*24
        });

    }

    //保存 Storage  本地数据 key-id
    saveLocalStorageId = (key, id, data) => {

        return global.storage.save({
            key: key,
            id: id,// 注意:请不要在key中使用_下划线符号!
            data: data,
            // 如果不指定过期时间，则会使用defaultExpires参数
            // 如果设为null，则永不过期
            // expires: 1000 * 3600
            defaultExpires: 1000*3600*24
        });
    }
    // 获取某个key下的所有数据(仅key-id数据)
    getAllDataForKey = (key) => {

        return global.storage.getAllDataForKey(key);

    }


    removeDataById = (key, id) => {
        return global.storage.remove({
            key: key,
            id: id
        });
    }

    removeDataByKey(key) {
     return global.storage.remove({
            key: key,
        });
    }

    clearMapForKey(key) {
        return  storage.clearMapForKey(key)
    }

}

export default new StorageDatas();

